﻿using System;
using Teigha.Core;

namespace Teigha.TD
{
	public class OdApLongTransactionManager_Internal : OdApLongTransactionManager
	{
		public OdApLongTransactionManager_Internal(IntPtr cPtr, bool cMemoryOwn) : base(cPtr, cMemoryOwn)
		{
		}

		public override OdResult checkOut(OdDbObjectId transId, OdDbObjectIdArray objList, OdDbObjectId toBlock, OdDbIdMapping errorMap, OdDbObjectId lockBlkRef)
		{
			return (OdResult)TD_DbPINVOKE.OdApLongTransactionManager_checkOut__SWIG_0(OdApLongTransactionManager.getCPtr(this), OdDbObjectId.getCPtr(transId), OdDbObjectIdArray.getCPtr(objList), OdDbObjectId.getCPtr(toBlock), OdDbIdMapping.getCPtr(errorMap), OdDbObjectId.getCPtr(lockBlkRef));
		}

		public override OdResult checkOut(OdDbObjectId transId, OdDbObjectIdArray objList, OdDbObjectId toBlock, OdDbIdMapping errorMap)
		{
			return (OdResult)TD_DbPINVOKE.OdApLongTransactionManager_checkOut__SWIG_1(OdApLongTransactionManager.getCPtr(this), OdDbObjectId.getCPtr(transId), OdDbObjectIdArray.getCPtr(objList), OdDbObjectId.getCPtr(toBlock), OdDbIdMapping.getCPtr(errorMap));
		}

		public override OdResult checkIn(OdDbObjectId transId, OdDbIdMapping errorMap, bool keepObjs)
		{
			return (OdResult)TD_DbPINVOKE.OdApLongTransactionManager_checkIn__SWIG_0(OdApLongTransactionManager.getCPtr(this), OdDbObjectId.getCPtr(transId), OdDbIdMapping.getCPtr(errorMap), keepObjs);
		}

		public override OdResult checkIn(OdDbObjectId transId, OdDbIdMapping errorMap)
		{
			return (OdResult)TD_DbPINVOKE.OdApLongTransactionManager_checkIn__SWIG_1(OdApLongTransactionManager.getCPtr(this), OdDbObjectId.getCPtr(transId), OdDbIdMapping.getCPtr(errorMap));
		}

		public override OdResult abortLongTransaction(OdDbObjectId transId, bool keepObjs)
		{
			return (OdResult)TD_DbPINVOKE.OdApLongTransactionManager_abortLongTransaction__SWIG_0(OdApLongTransactionManager.getCPtr(this), OdDbObjectId.getCPtr(transId), keepObjs);
		}

		public override OdResult abortLongTransaction(OdDbObjectId transId)
		{
			return (OdResult)TD_DbPINVOKE.OdApLongTransactionManager_abortLongTransaction__SWIG_1(OdApLongTransactionManager.getCPtr(this), OdDbObjectId.getCPtr(transId));
		}

		public override OdDbObjectId currentLongTransactionFor(OdDbDatabase pDb)
		{
			return new OdDbObjectId(TD_DbPINVOKE.OdApLongTransactionManager_currentLongTransactionFor(OdApLongTransactionManager.getCPtr(this), OdDbDatabase.getCPtr(pDb)), false);
		}

		public override void addReactor(OdApLongTransactionReactor arg0)
		{
			TD_DbPINVOKE.OdApLongTransactionManager_addReactor(OdApLongTransactionManager.getCPtr(this), OdApLongTransactionReactor.getCPtr(arg0));
		}

		public override void removeReactor(OdApLongTransactionReactor arg0)
		{
			TD_DbPINVOKE.OdApLongTransactionManager_removeReactor(OdApLongTransactionManager.getCPtr(this), OdApLongTransactionReactor.getCPtr(arg0));
		}
	}
}
